package com.Hsu.mq.mqserver.core;

import lombok.Data;

import java.io.Serializable;

/**
 * @author Hsu琛君珩
 * @ClassName:BasicPropertis
 * @date 2024-02-09
 * @apiNote
 * @Version: v1.0
 */

@Data
public class BasicProperties implements Serializable {
    //消息的唯一身份标识，此处为了保证 id 的唯一性，使用 UUID 作为 messageId
    //UUID 是编程中用来生成唯一 id 的算法
    private String messageId;
    //如果当前交换机类型是 DIRECT，这个就是 要转发的队列名
    //如果是 FANOUT，这个就是 无意义的
    //如果是 TOPIC，这个就是和 BindingKey匹配的，符合的才能转发给对应队列
    private String routingKey;
    //表示消息是否要持久化，1 表示不持久化，2 表示持久化 (RabbitMQ 就是这样的，你可以用枚举)
    private int deliverMode=1;
    //其实还有很多关于 BasicProperties 的属性，但这里不考虑了

    @Override
    public String toString() {
        return "BasicProperties{" +
                "messageId='" + messageId + '\'' +
                ", routingKey='" + routingKey + '\'' +
                ", deliverMode=" + deliverMode +
                '}';
    }
}